package com.zmn.brs.common.enums;

import java.util.Optional;
import java.util.stream.Stream;

/**
 * 类描述：规则引擎类型枚举
 * @author zhangyao
 * @since 2021/06/07 15:00
 */
public enum RuleDroolsTypeEnum {

    /**
     *
     */
    ROLE(1, "角色"),
    TIME(2, "时间"),
    CITY(3, "城市"),
    FREQUENCY(4, "频次"),
    /**
     * 主要用于与以上4个类型的规则引擎做区分，当场景为登陆、查询、导出的事件全都改为新的drools脚本后，以上4个类型需要去掉
     */
    BASE(10, "基础规则引擎");

    /**
     * 类型
     */
    private final Integer typeId;

    /**
     * 类型名
     */
    private final String typeName;

    RuleDroolsTypeEnum(Integer typeId, String typeName) {

        this.typeId = typeId;
        this.typeName = typeName;
    }

    public Integer getTypeId() {

        return typeId;
    }

    public String getTypeName() {

        return typeName;
    }

    public static RuleDroolsTypeEnum getEventTypeEnum(Integer typeId) {

        Optional<RuleDroolsTypeEnum> optional = Stream.of(RuleDroolsTypeEnum.values()).filter(e -> e.getTypeId().equals(typeId)).findFirst();
        return optional.orElse(null);
    }
}
